/* 
* Express.js 数据持久化存储-mysql示例
*/

//导入Express模块
const express=require("express");
//创建Express应用
const app=express();
//Express http服务端口
const port=3001;
//导入MYSQL数据访问模型
const db=require("./db/11_test_db");

//获取指定id的书籍信息
app.get("/:id",function(req,res,next){
   let bookId=parseInt(req.params.id);
   if(Number.isNaN(bookId)){
    next();
   }else{
    db.query("SELECT * FROM books WHERE id=?",[bookId]).then(result=>{
        console.log(result);
        res.json(result);
    }).catch(error=>{
        console.error(error);
        res.end();
    });
   }
});

//获取书籍列表
app.get("/",function(req,res,next){
     db.query("SELECT * FROM books").then(result=>{
         console.log(result);
         res.json(result);
     }).catch(error=>{
         console.error(error);
         res.end();
     });
 });

 //新增书籍
app.post("/",function(req,res,next){
    let title="测试书籍信息"+new Date().toLocaleDateString();
    db.query("INSERT INTO books (title,description) VALUES(?,?)",[title,"作者：赵六",]).then(result=>{
        console.log(result.insertId);
        res.json(result);
    }).catch(error=>{
        console.error(error);
        res.end();
    });
});

//更新书籍
app.put("/:id",function(req,res,next){
    let bookId=parseInt(req.params.id);
   if(Number.isNaN(bookId)){
    next();
   }else{
    let title="测试书籍信息"+new Date().toLocaleDateString();
    db.query("UPDATE books SET title=?,description=? WHERE id=?",[title,"作者：陈三",bookId]).then(result=>{
        console.log(result);
        res.json(result);
    }).catch(error=>{
        console.error(error);
        res.end();
    });
   }
});

//删除书籍
app.delete("/:id",function(req,res,next){
    let bookId=parseInt(req.params.id);
   if(Number.isNaN(bookId)){
    next();
   }else{
    db.query("DELETE FROM books WHERE id=?",[bookId]).then(result=>{
        console.log(result);
        res.json(result);
    }).catch(error=>{
        console.error(error);
        res.end();
    });
   }
});

//启动Express服务
app.listen(port,function(){
    console.log(`MyApp访问地址：http://127.0.0.1:${port}`);
});